<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>摩斯电码生成和解码工具</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: #f0f0f0;
            text-align: center;
            margin-top: 50px;
        }
        h1, h2 {
            text-align: center;
        }
        textarea {
            width: 100%;
            height: 200px;
            margin-top: 20px;
            border: 1px solid #ccc;
            padding: 10px;
            resize: none;
        }
        button {
            padding: 10px 20px;
            font-size: 18px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 5px;
            margin: 10px;
            cursor: pointer;
        }
        #convert-area {
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
        }
    </style>
</head>
<body>
    <h1>minAI摩斯电码生成和解码工具</h1>
    <div id="convert-area">
        <textarea id="input-text" placeholder="输入要转换的文本"></textarea>
        <button id="encode-button">生成摩斯电码</button>
        <button id="decode-button">解码摩斯电码</button>
        <textarea id="output-text" placeholder="转换后的结果"></textarea>
    </div>
    <script>
        const MORSE_CODE = {
            'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',
            'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',
            'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',
            'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
            'Y': '-.--', 'Z': '--..', '0': '-----', '1': '.----', '2': '..---',
            '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...',
            '8': '---..', '9': '----.'
        };

        const MORSE_CODE_REVERSE = Object.entries(MORSE_CODE).reduce((acc, [key, value]) => {
            acc[value] = key;
            return acc;
        }, {});

        function encode(text) {
            return text.toUpperCase().split('').map((ch) => {
                if (/[A-Z0-9]/.test(ch)) {
                    return MORSE_CODE[ch] + ' ';
                } else if (/\s/.test(ch)) {
                    return '/';
                } else {
                    return '';
                }
            }).join('');
        }

        function decode(code) {
            return code.split(/\s/).map((code) => {
                return MORSE_CODE_REVERSE[code] || '?';
            }).join('');
        }

        let inputText = document.getElementById('input-text');
        let outputText = document.getElementById('output-text');
        let encodeButton = document.getElementById('encode-button');
        let decodeButton = document.getElementById('decode-button');

        encodeButton.addEventListener('click', () => {
            outputText.value = encode(inputText.value);
        });

        decodeButton.addEventListener('click', () => {
            outputText.value = decode(inputText.value);
        });
    </script>
</body>
</html>
<button onclick="window.location.href='https://minAI{$rthSuffix}/'">返回</button>
